On-demand data stream parceling

ABSTRACT

A client device, or information appliance such as a personal digital assistant, is capable of receiving multimedia data streams from a server. However, due to processing and display capabilities, the client device may not be able to present the complete data stream, or a user may elect to configure the client device not to process data that will unduly reduce the client device&#39;s performance. Accordingly, the present invention provides a method and apparatus for allowing a server to determine the native, or user selected, capabilities of a client device, such that the server can filter and parse the data into meaningfully presentable data and non-meaningfully presentable data, and then transmit only the meaningfully presentable data to the client device for processing and display. In an alternative embodiment, the server sends the complete data stream to the client device, and the client device filters and parses the data, and then processes only the meaningfully presentable data for display on the client device.

REFERENCE TO RELATED APPLICATION

[0001] This application is a continuation of pending U.S. patentapplication Ser. No. 09/489,127, filed Jan. 21, 2000.

FIELD OF THE INVENTION

[0002] The present invention relates generally to handling data streamsin networked systems, and more specifically to parsing out those partsof a data stream usable by a client device for processing by the clientdevice.

BACKGROUND

[0003] A broad range of electronic devices have been developed, andcontinue to be developed, that provide a broad range of communicationcapabilities. Mobile phone designs provide Internet access functions,personal digital assistant (PDA) devices have radio connectivity to theInternet and are able to access e-mail and Internet web pages, andtelevision set-top boxes similarly provide Internet access. This broadrange of devices is comprised of devices of varying processing power anduser interface capabilities, from a fully-equipped multimedia PersonalComputer (PC) to a mobile phone or PDA that provides only asingle-color, low-resolution display with no sound capability. Becauseall these devices are currently being employed to access Internet data,it is desirable to ensure that data provided on the Internet may bedelivered in a manner appropriate to the broad range of client devices.

[0004] For example, mobile phone and PDA access is, in some currentproducts, limited to only accessing either the text portion of a webpage, or specially-designed web pages that are specifically tailored tobe displayed on the intended client device. Such a method is practicalfor the client, but it is inefficient and often impractical to createalternate web sites for each of a large variety of client types that maybe employed to access the web content.

[0005] Also, the use of text-only display of sites that are typicallyprovided as graphic-intensive web pages often hinders navigation of theweb site, which relies upon a user being able to view and click on alarge, complex graphic to select web pages or other content for viewing.Although most Internet clients are capable of searching for anddownloading any type of content, many clients are unable to display manytypes of content in a meaningful way.

[0006] What is desired is a method and apparatus that enables clientsthat are unable to download and process various types of content todownload and process only those portions of the content that the clientis capable of presenting in a meaningful way, and to store or retrievecontent the client cannot display for viewing on another client with thecapability to view the stored data.

SUMMARY OF THE INVENTION

[0007] The present invention provides, in various embodiments, a methodand apparatus that enables clients to receive and process a filtered orparsed portion of provided content upon determination that such contentis displayable on the client device through the use of a clientconfiguration. The clients that are unable to process and presentvarious types of content, or that are configured by a user preferencenot to present various types of content, will only display thosefiltered or parsed portions of the content that the client is capable ofpresenting in a meaningful way. Content that the client cannot, orpreferably will not, display can be stored for later retrieval,discarded, or ignored. The various embodiments of the present inventiontherefore provide enhanced capability for a client to receive at least aportion of a collection of data it cannot, in its entirety, present in ameaningful way, and to store that portion of the content for later use.

[0008] For example, a client device may be capable of displayinggraphics, but because displaying such graphics would slow down theprocessing and presentation of the content to an unacceptable rate, auser may select a configuration that classifies graphical content asdata that cannot be meaningfully presented by the client device, andthus, even though the capability exists, the device will parse out thegraphical content during reception of the content. However, since thisdata is being stored, if the user later decides to view suchaccompanying graphics, the content can be retrieved by the user.

BRIEF DESCRIPTION OF THE FIGURES

[0009]FIG. 1 shows a general-purpose information handling system forminga portion of the network system of the present invention.

[0010]FIG. 2 shows a diagram of a network with various clients connectedthereto, consistent with a preferred embodiment of the presentinvention.

[0011]FIG. 3 is a flowchart of a method of practicing preferredembodiments of the present invention.

DETAILED DESCRIPTION

[0012] In the following detailed description of preferred embodiments ofthe invention, reference is made to the accompanying drawings which forma part hereof, and in which is shown by way of illustration, specificsample embodiments in which the invention may be practiced. Theseembodiments are described in sufficient detail to enable those skilledin the art to practice the invention, and it is to be understood thatother embodiments may be utilized and that logical, mechanical,electrical, and/or other changes may be made without departing from thespirit or scope of the present invention. The following detaileddescription is, therefore, not to be taken in a limiting sense, and thescope of the invention is defined only by the appended claims.

[0013] The present invention provides in various preferred embodiments amethod and apparatus that enables clients that are unable to downloadand present various types of content, or that are configured not todownload or present various types of content, to download, process anddisplay only those portions of the content that the client is capable ofpresenting in a meaningful way, and in further embodiments, to store orretrieve content the client cannot meaningfully display for viewing onanother networked computerized system having the capability to view thestored data.

[0014]FIG. 1 illustrates a general-purpose information handling system,or personal computer system, 100, on which various embodiments of theinvention may be practiced. In this embodiment, processor 102, systemcontroller 112, cache 114, and data-path chip 118 are each coupled tohost bus 110. Processor 102 is a microprocessor such as a 486-type chip,a Pentium®, Pentium II® or other suitable microprocessor. Cache 114provides high-speed local-memory data (in one embodiment, for example,512 KB of cache memory) for processor 102, and is controlled by systemcontroller 112, which loads cache 114 with data that is expected to beused soon after the data is placed in cache 114 (i.e., in the nearfuture). Main memory 116 is coupled between system controller 114 anddata-path chip 118, and in one embodiment, provides random-access memoryof between 16 MB and 128 MB of data. In one embodiment, main memory 116is provided on SIMMs (Single In-line Memory Modules), while in anotherembodiment, main memory 116 is provided on DIMMs (Dual In-line MemoryModules), each of which plugs into suitable sockets provided on amotherboard holding many of the other components shown in FIG. 1. Mainmemory 116 includes standard DRAM (Dynamic Random-Access Memory), EDO(Extended Data Out) DRAM, SDRAM (Synchronous DRAM), RDRAM (Rambus DRAM),or other suitable memory technology. System controller 112 controls PCI(Peripheral Component Interconnect) bus 120, a local bus for system 100that provides a high-speed data path between processor 102 and variousperipheral devices, such as graphics devices, storage drives, networkcabling, etc. Data-path chip 118 is also controlled by system controller112 to assist in routing data between main memory 116, host bus 110, andPCI bus 120.

[0015] In one embodiment, PCI bus 120 provides a 32-bit-wide data paththat runs at 33 MHz. In another embodiment, PCI bus 120 provides a64-bit-wide data path that runs at 33 MHz. In yet other embodiments, PCIbus 120 provides 32-bit-wide or 64-bit-wide data paths that runs athigher speeds. In one embodiment, PCI bus 120 provides connectivity toI/O bridge 122, graphics controller 127, and one or more PCI connectors121 (i.e., sockets into which a card edge may be inserted), each ofwhich accepts a standard PCI card. In one embodiment, I/O bridge 122 andgraphics controller 127 are each integrated on the motherboard alongwith system controller 112, in order to avoid a board-connector-boardsignal-crossing interface and thus provide better speed and reliability.In the embodiment shown, graphics controller 127 is coupled to a videomemory 128 (that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM(Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor)port 129. VGA port 129 can connect to industry-standard monitors such asVGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) orSXGA-type (Super XGA) display devices. Other input/output (I/O) cardshaving a PCI interface can be plugged into PCI connectors 121.

[0016] In one embodiment, I/O bridge 122 is a chip that providesconnection and control to one or more independent IDE or SCSIconnectors, 124 and 125 respectively, to a USB (Universal Serial Bus)port 126, and to ISA (Industry Standard Architecture) bus 130. In thisembodiment, IDE connector 124 provides connectivity for up to twostandard IDE-type devices such as hard disk drives, CDROM (CompactDisk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, or TBU(Tape-Backup Unit) devices. In one similar embodiment, two IDEconnectors 124 (second connector not shown) are provided, and eachprovide the EIDE (Enhanced IDE) architecture. In the embodiment shown,SCSI (Small Computer System Interface) connector 125 providesconnectivity for up to seven or fifteen SCSI-type devices (depending onthe version of SCSI supported by the embodiment). In one embodiment, I/Obridge 122 provides ISA bus 130 having one or more ISA connectors 131(in one embodiment, three connectors are provided). In one embodiment,ISA bus 130 is coupled to I/O controller 152, which in turn providesconnections to two serial ports 154 and 155, parallel port 156, and FDD(Floppy-Disk Drive) connector 157. In one embodiment, ISA bus 130 isconnected to buffer 132, which is connected to X bus 140, which providesconnections to real-time clock 142, keyboard/mouse controller 144 andkeyboard BIOS ROM (Basic Input/Output System Read-Only Memory) 145, andto system BIOS ROM 146.

[0017]FIG. 1 shows one exemplary embodiment of a computer system thatmay be used with the present invention. However, other configurations,such as varying bus structures and memory arrangements are specificallycontemplated and are within the scope of the invention.

[0018]FIG. 2 illustrates a networked computerized system 201 and acomputerized client system 202. The client system 202 is linked to thenetworked computerized system 201 by a network connection 203, which invarious embodiments is a fiber optic connection, an electricalconnection, a wireless connection, or any other type of network dataconnection. The network connection serves to provide a link over whichdata can be exchanged between the networked system 201 and the clientsystem 202. The networked computer system 201 is in some embodimentsfurther connected to a network such as to the Internet via a networkconnection 204. In an alternative embodiment, the client device 202 maybe configured to connect directly to the internet, in which case thenetworked computer system 201 is representative of the internet, ratherbeing connected to the internet.

[0019] The client device of various embodiments has varying features, insome embodiments including but not limited to a display 205, a speaker206, and a keypad or input 207. The display 205 in some embodiments is atouch screen-type display, as is used in many personal digitalassistants such as the Palm Pilot series of PDA devices produced by 3Com Corporation. The display of various embodiments may be monochrome orcolor, backlit or active matrix display, or any other type of display.The keypad 207 also varies in different embodiments of the invention,including an alphanumeric keypad, a numeric keypad as is commonly foundon mobile telephones, special purpose keys as are commonly found on PDAdevices such as the PalmPilot PDA, and any other type of keypad entrydevice.

[0020] In operation, data provided to the client device 202 is parsed toidentify content that is not meaningfully presentable on the clientdevice, and content that can be presented on the device 202. The datathat can be presented is then processed for display by the device 202.In various embodiments, the client device 202 parses the incoming datainto meaningful and non-meaningful data, or the networked computerizedsystem 201 functions as a server to the client device 202 bypre-filtering and parsing the data being sent to the device 202 so as toreduce the processing load on the client device 202. The flowchart ofFIG. 3 shows a method of practicing various preferred embodiments of theinvention described herein, incorporating the elements of FIG. 2.

[0021] In one embodiment, a networked computerized data server 201filters data before providing the data to the client device 202. Thedata in various embodiments is received at the server, step 301, eitheroriginating at the server, or being retrieved via network connection 204from other data sources, or being provided to the networked server 201through any other suitable method. If the data is to be parsed andfiltered in the server rather than the client, as determined at 302, thedata is filtered at 303. The meaningful filtered data, having beenparsed into meaningful and non-meaningful data, is then provided to theclient device 202 at step 304. The client device 202 receives the dataat 305, and then processes and displays the filtered parsed data at 306.In an alternative approach, the networked server 201 may store thefiltered non-meaningful data for future processing and display, eitherby the networked server 201, or by the device 202.

[0022] In further alternative approaches, the data is filtered andparsed by the client device 202, after receipt of the complete datastream from a networked server 201. In such embodiments, the client 202is capable of receiving a variety of data types, and filtering orparsing out those types of data it is capable of meaningfullydisplaying. The data again originates at the server 201 as shown at step301 of FIG. 3. It is understood that, in an alternative embodiment, theclient device 202 could receive a data stream directly from theInternet, wherein the Internet would be the networked system 201, andwherein connection 203 would be connection 204. After determining thatthe data is going to be filtered and parsed in the client rather thanthe server, step 302, the server provides the complete data stream tothe client at 307. The client receives the data at 308, and filters thedata at 309. The data is parsed into meaningful and non-meaningful data.The client processes and displays the meaningful data at step 306, andcan either discard, ignore or save the filtered non-meaningful data. Thesaved data may then be transferred back to other devices for processingand display.

[0023] The data displayed on the client 202 may comprise any type ofdata currently existing, or to be developed, as can be displayed orpresented on a computerized communication device. Examples of datawithin the scope of the invention include streaming audiovisual data,text data, streaming video data, streaming audio data, still image data,and other similar types of data. Not all types of data within the scopeof the invention are likely to be meaningfully presentable on any singleembodiment of a client device, establishing a need for the presentinvention. The present invention functions in various embodiments tofilter and parse data, such that a presentable representation or portionof the data may be displayed on the client device without loading thedevice with data that the device is incapable of processing.

[0024] Filtering the data, which in various embodiments is implementedin the networked system 201 or the client device 202; thereforefunctions to represent the data in a manner that can be displayed on theclient device. This is accomplished in selected embodiments of theinvention by separating that part of the data that is displayable on theclient device from that portion that is not so displayable. The portionof the data that is displayable is then displayed on the client device,while the portion that is not displayable is in various embodimentsdiscarded, ignored, or stored for later retrieval by a device capableof, or configured for, displaying that part of the data.

[0025] The capabilities of the client to receive and present selectedtypes of data is determined in selected embodiments of the invention byconfiguration of the client 202 or the networked server 201. Theconfiguration information may be manually provided by a user, may be setby the client 202, or may be determined in any other manner. Forexample, the client 202 of one embodiment determines a configurationthat reflects varying capabilities dependent on the available resourcesand other tasks executing on the client device. In this manner, theclient device or its user can change the configuration properties of theclient device to reflect a reduced ability to present selected types ofdata to conserve computing resources or power.

[0026] Once the configuration is established, it is used in filteringthe data to determine what data is to be considered presentable and whatdata is not to be considered presentable (i.e., meaningful ornon-meaningful) by the client. The clients that are unable to presentvarious types of content or that are configured not to present varioustypes of content can then display those filtered portions of the contentthat the client is capable of presenting in a meaningful way, andcontent the client cannot display can be stored for later retrieval,ignored, or discarded. The present invention therefore provides enhancedcapability for a client to present at least a portion of a multimediadata stream which the device could not otherwise display in itsentirety, and in further embodiments, to store at least that portion ofthe content that it cannot display.

[0027] Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat any arrangement which is calculated to achieve the same purpose maybe substituted for the specific embodiments shown. This application isintended to cover any adaptations or variations of the invention. It isintended that this invention be limited only by the claims, and the fullscope of equivalents thereof.

I claim:
 1. A method of providing data from a server to a client,comprising: determining a configuration of the client for presentingdata; filtering the data to parse the data into meaningfully presentabledata and non-meaningfully presentable data based upon the clientconfiguration; and transmitting the meaningfully presentable data fromthe server to the client.
 2. The method of claim 1, wherein the step ofdetermining the client capability for presenting data includesmonitoring availability of resources on the client.
 3. The method ofclaim 2, wherein the step of determining the client capability forpresenting data includes changing client configuration properties toreflect the availability of resources on the client.
 4. The method ofclaim 1, wherein the step of determining the client capability forpresenting data includes monitoring tasks executing on the client. 5.The method of claim 4, wherein the step of determining the clientcapability for presenting data includes changing client configurationproperties to reflect tasks executing on the client.
 6. The method ofclaim 1, wherein the step of determining the client capability forpresenting data is set by the client.
 7. The method of claim 1, whereinthe step of determining the client capability for presenting data is setby the user of the client.
 8. The method of claim 1, wherein the clientconfiguration causes certain data to be parsed into non-meaningful dataeven though the client has the capability to present the certain data.9. The method of claim 1, further comprising storing thenon-meaningfully presentable data on the server.
 10. A method ofproviding data from a server to a client, comprising: determining aconfiguration of the client for presenting data; transmitting the datafrom the server to the client; filtering the data to parse the data intomeaningfully presentable data and non-meaningfully presentable data onthe client based upon the client configuration; and processing themeaningfully presentable data on the client.
 11. The method of claim 10wherein the filtering of data to parse the data occurs after receipt ofa complete data stream by the client from the server.
 12. The method ofclaim 10, further comprising storing the non-meaningfully presentabledata on the client.
 13. The method of claim 10, further comprisingtransferring the non-meaningfully presentable data to other devices forpresentation.
 14. The method of claim 13, wherein the step oftransferring the non-meaningfully presentable data includes storing thenon-meaningfully presentable prior to transfer of the data.
 15. Themethod of claim 10, wherein the client configuration is alterable toprovide varying degrees of user-determined capability for presentingdata.
 16. The method of claim 10, further comprising deleting thenon-meaningfully presentable data from the client.
 17. The method ofclaim 10, further comprising ignoring the non-meaningfully presentabledata on the client.
 18. The method of claim 10, wherein the client maybe configured to predetermine whether certain data will be parsed intonon-meaningful data.
 19. The method of claim 10, wherein the client iscapable of providing a user with an option for setting the clientconfiguration such that certain data will be parsed into non-meaningfuldata even though the client has the capability to present the certaindata.